| Geert Lovink on Sun, 1 Sep 96 17:45 METDST |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| nettime: our own computer architecture |
Output to NETTIME
http://thing.des.nl/gris
email: gris@desk.nl
************************************************************
Some Advertisements regarding the proposed
Absolutely Simplyfied System
or ASS Computer
************************************************************
By chris christiaansz ungerer
assisted and advised by his friends
and his
the-Book
by
himself and the natural order of chaos
as part of an
experimental retrospective editing process.
************************************************************
About von Neumann and other design.
Nearly all present day digital computers have a so-called
architecture, a design, named after Margittai Neumann J nos or
John von Neumann, the famous Hungarian mathematician and computer
philosopher. Let us have a quick look at some of the principal
features of such a von Neumann machine.
Hardware
A von-Neumann machine consists of the following hardware:
* A power supply.
* input & output subsystems
Input-output equipment is designed to allow communication between the
computer and the outside world. Perhaps this item is best illustrated
by providing a list of some ( and by no means all) possible
input/output devices:
paper tape reader
paper tape punch
card reader
card punch
lamps
switches
keyboard
monitor
printer
plotter
magnetic tape drive
flopy disk drive
hard disk drive
cd-rom drive
modem
image scanner
camera and adapter
mouse
joy-stick
touch screen
a-d & d-a converters and data acquisition equipment
a-d & d-a converters and sound adapter
These IO components are, of course, indispensible if we are to
have any kind of machine that can communicate with the outside
world in some way. Machines which cannot do this may be very
fast or clever, but they are usually not be very useful.
Nevertheless i propose to concentrate on the remaining two
items of hardware and a further two of software in the light of
the present discussion.
Memory provides storage for data and programs. In the von Neumann
scheme it is essentially organised one-dimensionally, like a
length of string or a street - memory lane. Each place in memory
has an address and can store a certain amount of data. Data can
be any information of potential use to the user. It should be
pointed out here that the image in memory is only a
representation of the actual information. The image is painted in
memory using a binary system expressed in ones and zeros, five
volts or no volts, charge or no charge, on or off. Each place
where there may be a one or a zero is called a BIT, short for
binary digit. The bit is said to be the basic unit of
information. It can be thought of as the answer to any yes/no
question. Let us examine a fragment of memory on this machine to
see which representations have been made in it. Each address
identifies a unique byte (eight bits) of memory on this machine
and i have shown it in lines of eight bytes at a time.
00630³ 49 74 20 73 ³ 68 6F 75 6C It shoul
00638³ 64 20 62 65 ³ 20 70 6F 69 d be poi
00640³ 6E 74 65 64 ³ 20 6F 75 74 nted out
00648³ 20 68 65 72 ³ 65 20 74 68 here th
00650³ 61 74 20 74 ³ 68 65 20 69 at the i
00658³ 6D 61 67 65 ³ 20 69 6E 0D mage in
00660³ 0A 6D 65 6D ³ 6F 72 79 20 memory
The numbers at the far left are the addresses of the first byte in a
sequence of eight. The pairs of characters in the body of the table
represent the data in each of those eight bytes. At the far right
you will see the actual text, written by a person, which has
resulted in this memory image. It would be cumbersome to write
"0000 0000 0110 0011 0000³ 01001001 01110100 00100000 It "
instead of "00630³ 49 74 20 73 ³ 68 6F 75 6C It shoul"
and so we write
" 0 0 6 3 0³ 49 74 20 It"
I t space
gathering together groups of eight bits at a time.
more info --> hexbyte
It is of course possible to represent any kind of information.
There are several systems for representing text characters in
binary. Let us quickly look a common version of the American
Standard Code for Information Interchange (ASCII):
Since the byte provides space for eight bits or two Hex digits
(of four bits each) [Extended] ASCII is a table of 256 charcters
of which the first 32 <00H-1FH> are special communication control
characters, the next thirty two punctuation marks and numeric
digits, the next sixty four upper and lower case letters
according to the alphabet and the final hundred and twenty eight
contain international, accented, box drawing and other special
marks and characters.
Capital U for example would be written in memory as 0101 0101 or
55H.
Memory has been the subject of a very large world wide commercial
game. Even though IBM decreed and defined in 1983/84 that
640 Kbytes was more than anyone could ever possibly want to use,
it was soon not enough and this definition of infinity is these
days a severely hindering limit.
These days we see programs of tens of millions of bits and
many more multiples when considering the associated help files,
bugreports and internet conferences.
Strange is that well being and functioning of these software
conclomorations can depend on the well being of individual bits.
The reliability of modern software suites rests on the myth that
it is possible to have an infinite signal to noise ratio.
All this be it as it may, memory is free. The Price has fallen
around one millionth of modest meal per bit.
* A Central Processing Unit (CPU)
The processor does the actual computing by carrying out a
program. It fetches an instruction from some address in memory;
executes it and then fetches the next instruction from the
address immediately following the previous one. During execution
of an instruction it is possible to alter data anywhere in
memory. It is also possible to jump or transfer control to
another place in the list of instructions as a result of a
condition being true or false.
The processor is not like a Human being; it would not
understand nor carry out the instruction PICK UP GRAIN OF
SALT USING TWEEZERS. Processor instructions are at a much
more fundamental level like: Fill processor register HL with
the data found at memory location such and such, or: Do
nothing for one machine cycle, or: Add the contents of
processor register B to the accumulator. A program written
at this fundamental level is said to be in MACHINE LANGUAGE. All
the different machine language instructions recognised by the
processor together form the INSTRUCTION SET.
Modern microprocessors have tended towards ever greater
complexity and the instruction sets have been getting larger
and larger to the point where a modern processor has
hundreds of fundamental instructions, including even
multiplication and division. Since one byte is eight bits,
it can only encompass 2^8=256 different possibilities. A
processor having more than 256 different instructions must
therefore require that each unique instruction is described
by more than one byte. Adding the possibility of expressing
addresses or data in the machine language leads us to
several bytes for each step of machine code.
Some years ago there was a development away from the trend
of ever increasing complexity. It was realised that REDUCING
the number of instructions in the set could actually make a
computer faster, because each instruction would require only
one byte (data not included), and could therefore be fetched
from memory and executed that much faster than than four or
more bytes in the case of the then modern processors. These
machines were called Reduced Instruction Set Computers or
RISC for short.
Software
* Data
According to the-book's GLoSsary, Data is a finite extent of
some non- random signal. It can be any information of
potential use to the user. In the von Neumann scheme, the
class Data can be acted upon and undergo some form of
transformation or editing.
* Program
A program for the computer is like a cookery recipy, a
structured list of instructions. To give you an idea of how a
computer program works i have stolen an example from Mr.
Zeno:
DATA: A table
A jar of salt
Tweezers
PROGRAM:
10 BEGIN
20 PICK UP TWEEZERS
30
40 MAIN_LOOP:
50
60 PICK UP GRAIN OF SALT USING TWEEZERS
70 DROP GRAIN OF SALT ON TABLE FROM A HEIGHT
80 IF THERE IS A HEAP OF SALT ON THE TABLE GO TO REPORT
90 IF NOT GO TO MAIN_LOOP
100
110 REPORT:
120
130 TELL TEACHER THAT THERE IS NOW A HEAP OF SALT ON THE
TABLE
140 END
This 'program' is the fourth of set of paradoxes or rather
stories by Zeno the Greek philosopher (B.C. 336?-264?). The
point of it is that there is initially no 'heap' of salt on
the table. After a few grains have been dropped there are
some isolated scattered grains lying here and there.
Everybody knows that there will be a heap after, say, a
thousand have been dropped. The interesting question is: what
is the exact boundary between scattered grains (no heap) and
heap. This 'program' is not really suitable for computers, as
it is rather difficult to get a computer / robot to decide
whether there is a 'heap' or not. A human being is however
quite capable of following these instructions and i have
included this example because i always felt that the way Mr.
Zeno's presented his instructions was very much like our
present day concept of a computer program.
The (example) (pseudo) program above was represented in TEXT
and is therefore also a specialised form of DATA.
In the von Neumann scheme, the class Program is Data which can be
executed (possibly after successful completion of some compilation
process).
the classes of Data and Program together form the software for
the von Neumann machine: a STORED PROGRAM COMPUTER where the
program (the structured list of instructions telling the
machine what to do next) can be on a disk, in memory, fixed
with bits of wire and plugs, or inscribed in a chip.
Aside:
Once, in a bistro in Amsterdam in 1989, someone asked in the
light of a discussion about RISC (Reduced Instruction Set
Computers) what would be the minimum number of instructions for a
computer. Somebody answered that it could well be two. As one
thing leads to another, these two instructions were soon named:
Please_Wait with the associated microcode of 0 and Please_Edit
with a microcode of 1. If we image a machine with cells or
domains of memory we can assign some meaning to these
proto-instructions. A zero in the software field of such a cell
would mean Please_Wait, that is, any information in the cell
remains unchanged throughout the coming machine cycle.
Please_Edit would mean that the information in the cell is
processed in some way, perhaps moved or shifted to and from some
other cell or parts of cells. A third instruction Please_Yourself
was added to make the machine's software slightly noisy. In other
words, Please_Yourself is slightly unpredictable. This opens the
possibility that software could evolve on the machine (provided
that a suitable modulated feedback channel is available).
Let us look at the ASS computer in the way we did with the
classic von Neumann schema:
The proposed ASS machine consists of the following hardware:
* A power supply.
* input & output subsystems
HAPPY is the name of the GREEN light ON the ASS computer which
indicates that it is operating well. Naturally any other flavour
of Input/Output devices would be warmly appreciated as well. we
will come back to this issue shortly.
* Memory
Memory on the ASS Computer is organised in a more dimensional
ARRAY of CELLS. Each cell encompasses enough bits of memory
to be home to a decent sized information nugget. On top of
this there are Control, Status, History, Expected, Input and
Output fields
Data is moved according to the principle that travelling is
quickest when you have the shortest way to go, so it is moved
from neighbour to neighbour. Specialised Peripheral Cells who
may be at a physical edge of the memory cell array, or who
can define a virtual boundary or interface to the machine can
be connected to IO.
Please think, if you will, of the (computer) game of LIFE. On
our world LIFE has a tendency to exist at the boundary or
interface between phases (EARTH-AIR WATER-EARTH etc.).
{LIFE.PAS}
* Some Distributed Processing Units (CPU) CHRISART:ASS_Processor
Strictly speaking the ASS Computer has no Central Processing
Unit. Each memory cell is accompanied by processing power or
if you like inteligence. The Rythm of the machine consists of
cycles which may be as slow as you like. The MAchine need not
necessarily run at 100 or 200 MHz but perhaps at one herz or
even a fraction of that.
It was once envisaged that it would be nice to have an ASS
machine with a span of seven cells in the direction of any
one of seven hundred dimensions.
Memory and processor are one and the same on the ASS machine
Software
In the ASS machine scheme, there is no distinction between the
classes Program is Data which can be executed (possibly after
successful completion of some compilation process).
the class of Structured Data forms the software for the ASS
machine.
--
* distributed via nettime-l : no commercial use without permission
* <nettime> is a closed moderated mailinglist for net criticism,
* collaborative text filtering and cultural politics of the nets
* more info: majordomo@is.in-berlin.de and "info nettime" in the msg body
* URL: http://www.desk.nl/~nettime/ contact: nettime-owner@is.in-berlin.de